import abc
from typing import Generic, TypeVar

from .attached import AttachedJob, AttachedJobsPlatform
from .detached import DetachedJob, DetachedJobsPlatform

C = TypeVar('C')
P = TypeVar('P')
AJ = TypeVar('AJ', bound=AttachedJob)
DJ = TypeVar('DJ', bound=DetachedJob)


class Platform(Generic[C, P, AJ, DJ], AttachedJobsPlatform[C, AJ], DetachedJobsPlatform[C, P, DJ], abc.ABC):
    pass
